The correlation between a received code modulated signal and an available replica code has to be acquired for example in CDMA (Code Division Multiple Access) spread spectrum communications.
For a spread spectrum communication in its basic form, a data sequence is used by a transmitting unit to modulate a sinusoidal carrier and then the bandwidth of the resulting signal is spread to a much larger value. For spreading the bandwidth, the single-frequency carrier can be multiplied for example by a high-rate binary pseudo-random noise (PRN) code sequence comprising values of −1 and 1, which code sequence is known to a receiver. Thus, the signal that is transmitted includes a data component, a PRN component, and a sinusoidal carrier component. A PRN code period comprises typically 1023 chips, the term chips being used to designate the bits of the code conveyed by the transmitted signal, as opposed to the bits of the data sequence.
A well known system which is based on the evaluation of such code modulated signals is GPS (Global Positioning System). In GPS, code modulated signals are transmitted by several satellites that orbit the earth and received by GPS receivers of which the current position is to be determined. Each of the satellites transmits two microwave carrier signals. One of these carrier signals L1 is employed for carrying a navigation message and code signals of a standard positioning service (SPS). The L1 carrier signal is modulated by each satellite with a different C/A (Coarse Acquisition) Code known at the receivers. Thus, different channels are obtained for the transmission by the different satellites. The C/A code, which is spreading the spectrum over a 1 MHz bandwidth, is repeated every 1023 chips, the epoch of the code being 1 ms. The carrier frequency of the L1 signal is further modulated with the navigation information at a bit rate of 50 bit/s. The navigation information, which constitutes a data sequence, can be evaluated for example for determining the position of the respective receiver.
A receiver receiving a code modulated signal has to have access to a synchronized replica of the employed modulation code, in order to be able to de-spread the data sequence of the signal. More specifically, a synchronization has to be performed between the received code modulated signal and an available replica code. Usually, an initial synchronization called acquisition is followed by a fine synchronization called tracking. In both synchronization scenarios, correlators are used to find the best match between the replica code sequence and the received signal and thus to find their relative shift called code phase. The match can be determined for example with chip accuracy. If an accuracy of a fraction of a chip is needed, the chip can be presented by several samples after an analog-to-digital conversion.
During the acquisition, the phase of the received signal relative to the available replica code sequence can have any possible value due to uncertainties in the position of the satellite and the time of transmission of the received signal.
Moreover, an additional frequency modulation of the received signal may occur, which can be as large as +/−6 kHz, for example due to a Doppler effect and/or a receiver clock inaccuracy. The search of the code phase is therefore usually performed with different assumptions on an additional frequency modulation. For a sensitivity increase, in particular for weak signal environments like indoor environments, a receiver normally uses long integrations that require the frequency uncertainty to be as small as a few Hz. Therefore, even with the aligned code, a large number of frequency assumptions should be checked.
The initial acquisition is thus a two-dimensional search in code phase and frequency. Many different parallel architectures, time multiplexing and off-line processing approaches have been presented so far for the acquisition of received code modulated signals. To meet the real time processing and weak signal sensitivity requirements, usually, a massive correlator bank which is able to check in parallel hundreds and thousands of options is employed for implementing the acquisition stage of a receiver.
Each correlator of such a massive correlator bank checks simultaneously another option defined by a specific code phase and a specific frequency of modulation. To this end, each correlator multiplies a received code modulated signal to a predetermined compensating sinusoidal signal, aligns the compensated code modulated signal with the replica code sequence at a predetermined code-phase, multiplies the samples of the compensated code modulated signal and the samples of the replica code sequence element by element and integrates the multiplication results. The integration can be either purely coherent or include a non-coherent stage. In a non-coherent stage, consecutive coherent integration results for a certain number of multiplication results, respectively, are further integrated by summing the absolute or the squared values of these integration results.
If the assumptions on the code-phase and the frequency modulation belonging to one option are correct for the received code modulated signal, then the correlation results in a larger integration value than in the case of a misalignment or an inappropriate compensation of a frequency modulation. Thus, detecting the correlation peak and comparing it with a certain threshold allows finding the correct code phase and the correct frequency of modulation.
For illustration, FIG. 6 presents a schematic block diagram of an acquisition and tracking portion of a conventional receiver.
In the receiver, received samples are mixed by a mixer 62 with various search center frequencies ejωt. The mixed samples are then decimated by a decimation block 63 in accordance with a provided code frequency. The mixed and decimated samples are provided to a matched filter 64 to find out the code phase, or delay, of the received signal compared to an available replica code sequence.
The output of the matched filter 64 for a respective checked code phase is provided to a Discrete Fourier Transform (DFT) bank 65 to determine in addition the Doppler frequency in the received signal. The DFT bank 65 mixes to this end the respective output of the matched filter 64 in parallel with a plurality of possible Doppler frequencies ejω1t, ejω2t, etc., e−jω1t, e−jω2t, etc. The results for each possible Doppler frequency are added to a coherent memory 66. The coherent memory 66 is structured in the form of a table which comprises one column for each delay checked by the matched filter 64, and one row for each DFT bin.
A processing component 67 then forms the sum over the squared I and Q components for each entry in the coherent memory 66 as a coherent addition.
The output of the processing portion 67 is stored in a non-coherent memory 68 for a subsequent non-coherent integration. The non-coherent memory 68 is structured in the same way as the coherent memory 66.
While the first hand-held GPS receivers were using less than 12 correlators, modern GPS receivers use up to 16 000 correlators. A higher number of correlators obviously requires a larger silicon area of the integrated circuit (IC) chip on which the correlators are implemented. Currently, a long stream of multiplication results is digitized and stored in a coherent memory for assembling data for a respective off-line coherent integration, and the coherent integration results are stored in a non-coherent memory for subsequent off-line non-coherent integrations. In new assisted GPS receivers, coherent and non-coherent integration memories for up to hundreds of kBytes occupy most of the silicon area. Roughly, ½ to ⅔ of this memory space belongs to the coherent integration memory.
It has to be noted that a similar problem may occur with any other receiver of code modulated signals, in particular with any other Global Navigation Satellite System (GNSS), like the European satellite navigation system Galileo or Glonass.